﻿
namespace TwinHead.Frameworks.Morph.Stream
{
    /// <summary>
    /// 스트림을 읽을때 필요한 인터페이스
    /// </summary>
    public interface IReader : System.IDisposable
    {
        /// <summary>
        /// 다음문자를 반환합니다.
        /// </summary>
        /// <returns></returns>
        char GetNext();
        /// <summary>
        /// 현재문자를 반환합니다.
        /// </summary>
        /// <returns></returns>
        char Peek();
        /// <summary>
        /// 이전문자를 반환합니다.
        /// </summary>
        void UnGet();
        /// <summary>
        /// 문자열의 끝인지 여부를 반환합니다.
        /// <para>true : 문자열 스트림의 끝입니다.</para>
        /// </summary>
        /// <returns></returns>
        bool Eos();
        /// <summary>
        /// 문자열 스트림의 원본을 가져옵니다.
        /// </summary>
        string OriginalText { get;}
    }
}
